
package cl.utfsm.android.clases;
import java.util.ArrayList;
import org.json.JSONException;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.util.Log;
import cl.utfsm.android.*;
import cl.utfsm.android.funciones.webServices;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;



public class MyOverlay extends ItemizedOverlay {
	
	public ArrayList getMapOverlays() {
		return mapOverlays;
	}


	public void setMapOverlays(ArrayList mapOverlays) {
		this.mapOverlays = mapOverlays;
	}

	//Inicializacion Variables
	private ArrayList mapOverlays = new ArrayList();
	private Context context;


	
	public MyOverlay(Drawable defaultMarker) {
		  
		super(boundCenterBottom(defaultMarker));
		
	}
 
	
	public MyOverlay(Drawable defaultMarker, Context context) {
		 
		this(defaultMarker);
		this.context = context;
	}
 
	@Override
	protected OverlayItem createItem(int i) {
		
		return (OverlayItem) mapOverlays.get(i);
	}
 
	@Override
	public int size() {
		
		return mapOverlays.size();
		
	}
 
	@Override
	protected boolean onTap(int index) {
		
		//Al hacer click se obtiene el index del punto		
		  
		   OverlayItem item = (OverlayItem) mapOverlays.get(index);
		   
		   
		   if(item.getTitle()=="-2"){
			   AlertDialog.Builder dialog1 = new AlertDialog.Builder(this.context);
			   dialog1.setTitle("Espera un momento");
			   dialog1.setMessage("Esto es para ver la ruta solamente");
			   dialog1.show();

			   
		   }
		   
		   else{ 
			   if(item.getTitle()=="-1"){
				   
				   AlertDialog.Builder dialog = new AlertDialog.Builder(this.context);
				   dialog.setTitle("Espera un momento");
				   dialog.setMessage("Este eres tu NO un evento :)");
				   dialog.show();
	
				   
			   }
			   
			   else{
			    //se inicializan las variables
				   
				   Evento v=null;
				   String IP = "192.168.0.3";	   
				   
			    // para recuperar evento particular
				   
				   
				   String url = "http://" + IP + "/gonow/webServiceEvento.php?id="+item.getTitle();
				   String retornoJSONeventos = "";
				   retornoJSONeventos = webServices.getJSONdata(url); 
				   
		
				//se obtiene los datos de un evento en particular
				   
				   try {
					
					ArrayList<Evento> ev = webServices.parseJSONdataEvent(retornoJSONeventos);
					v=ev.get(0);
				   
				   } catch (JSONException e) {
		
					e.printStackTrace();
				   		
				   }
				   
			   
				//aqui se abre el nuevo activity con la informacion del pto selecionado
				   
		           Intent myIntent = new Intent(context, PerfilActivity.class);
		           myIntent.putExtra("id",String.valueOf(v.getId()));
		           myIntent.putExtra("lat2",String.valueOf(v.getLatitud()));
		           myIntent.putExtra("long2",String.valueOf(v.getLongitud()));
		           myIntent.putExtra("estado",String.valueOf(v.getEstado()));
		           myIntent.putExtra("nombre",v.getNombre());
		           myIntent.putExtra("direccion",v.getDireccion());
		           myIntent.putExtra("precio",v.getPrecios());
		           myIntent.putExtra("fecha_inicio",v.getFecha_inicio());
		           myIntent.putExtra("fecha_termino",v.getFecha_termino());
		           myIntent.putExtra("categoria",v.getCategoria()); 
		           myIntent.putExtra("descripcion",v.getDescripcion());
		           myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		           context.startActivity(myIntent);                    
			   }}
		   return true;   
	}
 
	public void addOverlay(OverlayItem overlay) {
		
		mapOverlays.add(overlay);
	    this.populate();
	    
	}
	
	public void deleteOverlay(OverlayItem overlay){
		
		mapOverlays.remove(overlay);
		this.populate();
		
	}
	
	public void deleteall(){
		
		mapOverlays.clear();
		this.populate();
		
	}
		 
}


